home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C++ / Frameworks / Sprocket Framework DR2 / Sprocket Framework Interfaces / DynamicArray.h < prev    next >
Text File  |  1996-06-12  |  1KB  |  59 lines

  1. // Sprocket Framework header file
  2. // DynamicArray.h
  3.  
  4.  
  5.  
  6. #ifndef        _DYNAMICARRAY_
  7. #define        _DYNAMICARRAY_
  8.  
  9. typedef    void            ArrayElement, *ArrayElementPtr;
  10. typedef    unsigned long    ArrayElementCount;
  11. typedef    unsigned long    ArrayElementIndex;
  12.  
  13. class    TDynamicArray
  14. {
  15. public:
  16.                         TDynamicArray();
  17.     virtual                ~TDynamicArray();
  18.  
  19.  
  20.     //    insertion & deletion
  21.  
  22.     OSErr                Insert(ArrayElementPtr elementToInsert, ArrayElementIndex beforeElement);
  23.     OSErr                InsertFirst(ArrayElementPtr elementToInsert);
  24.     OSErr                InsertLast(ArrayElementPtr elementToInsert);
  25.  
  26.     OSErr                Delete(ArrayElementIndex whichElement);
  27.     OSErr                DeleteFirst();
  28.     OSErr                DeleteLast();
  29.  
  30.  
  31.     //    element accessors
  32.  
  33.     ArrayElementCount    GetElementCount() { return fElementCount; };
  34.  
  35.     ArrayElementPtr        GetIndexedElement(ArrayElementIndex whichElement);
  36.     void                SetIndexedElement(ArrayElementIndex whichElement, ArrayElementPtr element);
  37.  
  38.  
  39.     //    iterators
  40.     
  41.     typedef void        (*EachArrayElementProc)(ArrayElementPtr element, void * param);
  42.     typedef Boolean        (*EachArrayElementTestProc)(ArrayElementPtr element, void * param);
  43.  
  44.     void                ForEachElement(EachArrayElementProc proc, void * param);
  45.     ArrayElementPtr        FirstElementThat(EachArrayElementTestProc proc, void * param);
  46.     ArrayElementPtr        LastElementThat(EachArrayElementTestProc proc, void * param);
  47.     
  48.     OSErr                FindAndDeleteElement(ArrayElementPtr element);
  49.     
  50.     OSErr                MoveToFront(ArrayElementPtr elementToMove);
  51.  
  52. protected:
  53.  
  54.     ArrayElementCount    fElementCount;
  55.     ArrayElementPtr **    fStorage;
  56. };
  57.  
  58. #endif
  59.